package com.qf.api.sys.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * @Author: sin
 * @Date: 2025/5/21 20:55
 * @Description:
 **/
@TableName(value ="sys_operation_log")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class SysOperationLogEntity implements Serializable {

    /** 日志主键 */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /** 业务类型（0其它 1新增 2修改 3删除） */
    private Integer businessType;

    /** 请求方式 */
    private Integer requestMethod;

    /** 请求模块 */
    private String requestModule;

    /** 请求URL */
    private String requestUrl;

    /** 调用方法 */
    private String calledMethod;

    /** 请求详情 */
    private String requestDesc;

    /** 操作类别（0其它 1后台用户 2手机端用户） */
    private Integer operatorType;

    /** 用户ID */
    private Long userId;

    /** 操作人员 */
    private String username;

    /** 操作人员ip */
    private String operatorIp;

    /** 操作地点 */
    private String operatorLocation;

    /** 请求参数 */
    private String operationParam;

    /** 返回参数 */
    private String operationResult;

    /** 操作状态（1正常 0异常） */
    private Integer status;

    /** 错误消息 */
    private String errorStack;

    /** 操作时间 */
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @TableField(fill = FieldFill.INSERT,value = "operation_time")
    private Date operationTime;

    /** 逻辑删除（0未删除，1已删除） */
    @TableField(value = "deleted")
    @TableLogic
    private Boolean deleted;
}
